6f7cbd2c498807214157e652785c4bd515da7471,core/src/main/java/org/jacorb/orb/Delegate.java,Delegate,request,#org.omg.CORBA.Object#String#boolean#,2238

Before Change


            if (currentCtxt.containsKey (INVOCATION_KEY.INTERCEPTOR_CALL) ||
                currentCtxt.containsKey (INVOCATION_KEY.SERVANT_PREINVOKE))
            {
                clearCurrentContext = false;
            }
        }

        if (currentCtxt == null)
        {
            currentCtxt = new HashMap<INVOCATION_KEY, UtcT>();

            invocationStack.push (currentCtxt);
        }

        UtcT requestEndTime = currentCtxt.get (INVOCATION_KEY.REQUEST_END_TIME);
        UtcT replyEndTime = currentCtxt.get (INVOCATION_KEY.REPLY_END_TIME);

        if (!disableClientOrbPolicies)
        {
            // Compute the deadlines for this request based on any absolute or
            // relative timing policies that have been specified.  Compute this
            // now, because it is the earliest possible time, and therefore any
            // relative timeouts will cover the entire invocation.

            if (requestEndTime == null)
            {
                requestEndTime = getRequestEndTime();
                final long requestTimeout = getRelativeRequestTimeout();

                if ((requestTimeout > 0) || (requestEndTime != null))
                {
                    requestEndTime = Time.earliest(Time.corbaFuture (requestTimeout), requestEndTime);

                    if (Time.hasPassed(requestEndTime))
                    {
                        if (clearCurrentContext)
                        {
                           clearInvocationContext();
                        }

                        throw new TIMEOUT("Request End Time exceeded prior to invocation",
                                          2,
                                          CompletionStatus.COMPLETED_NO);
                    }
                }

                currentCtxt.put (INVOCATION_KEY.REQUEST_END_TIME, requestEndTime);
            }
            else
            {
                if (Time.hasPassed (requestEndTime))
                {
                    if (clearCurrentContext)
                    {
                       clearInvocationContext();
                    }

                    throw new TIMEOUT("Request End Time exceeded",

After Change


            {
                if (Time.hasPassed (requestEndTime))
                {
                    clearInvocationContext();
                    throw new TIMEOUT("Request End Time exceeded",
                                      2,
                                      CompletionStatus.COMPLETED_NO);